
class Person(object):
    def __init__(self, hobbys):
        self.hobbys = hobbys

    def __getitem__(self, item):
        """返回与指定键相关联的值"""
        return self.hobbys[item]

person = Person(['篮球', '足球', '乒乓球'])

"""
如果没有__getitem__会报: TypeError: 'Person' object is not iterable

原因: for循环的时候解释器
1.会先去找__iter__, 发现有__iter__, 直接迭代
2.如果没有__iter__, 然后会去找__getitem__, 发现没有__getitem__就会报错
3.如果有__getitem__, 就挨个返回
"""
for hobby in person:
    print(hobby)

